home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / workbench / time / sclock / source / global.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-12-26  |  4.3 KB  |  233 lines

  1. /****************************************************************************
  2. *
  3. * VERSION
  4. *    $VER: global.h 1.71 (18.12.93)
  5. *
  6. * DESCRIPTION
  7. *    Global defines/structs/prototypes...
  8. *
  9. * AUTHOR
  10. *    Rune Johnsrud
  11. *
  12. * COPYRIGHT
  13. *    (c) 1993 Amiga Freelancers
  14. *
  15. *****************************************************************************/
  16.  
  17. #define MIN_LIB_VER 39
  18.  
  19. /****************************************************************************/
  20.  
  21. #define ASM        __asm __saveds
  22. #define REG(x)    register __ ## x
  23.  
  24. /****************************************************************************/
  25.  
  26. enum _ERR_ID
  27. {
  28.     NOERROR,
  29.     SYSERROR,
  30.     INIT_ERR_NOTWBSTART,
  31.     INIT_ERR_INTUITIONLIB,
  32.     INIT_ERR_GRAPHICSLIB,
  33.     INIT_ERR_DISKFONTLIB,
  34.     INIT_ERR_ASLLIB,
  35.     INIT_ERR_GADTOOLSLIB,
  36.     INIT_ERR_ICONLIB,
  37.     INIT_ERR_UTILITYLIB,
  38.     INIT_ERR_DATATYPESLIB,
  39.     INIT_ERR_OPENDEVICE,
  40.     INIT_ERR_ALLOCASLREQ,
  41.     PN_ERR_PREFSNOTIFY,
  42.     DT_ERR_GETATTRS,
  43.     DT_ERR_DOMETHOD,
  44.     GEN_ERR_LOCKSCREEN,
  45.     GEN_ERR_OPENWINDOW,
  46.     GEN_ERR_NOICONARGS,
  47.     GEN_ERR_READICON,
  48.     GEN_ERR_WRITEICON,
  49.     GEN_ERR_OPENFONT,
  50.     GEN_ERR_MENUS,
  51.     GEN_ERR_GETVISUALINFO,
  52.     GEN_ERR_WINSIZE,
  53.     GEN_ERR_ALLOCMEM,
  54.     GEN_ERR_ALLOCSIGNAL,
  55.     ERR_UNKNOWN,
  56. };
  57.  
  58. enum _ASL_RETVAL
  59. {
  60.     ASL_REQ_OK,
  61.     ASL_REQ_CANCEL,
  62.     ASL_REQ_FAILED,
  63. };
  64.  
  65. enum _IDCMP_ACTION
  66. {
  67.     NOACTION,
  68.     ACTION_CLOSEWINDOW,
  69.     ACTION_QUIT,
  70. };
  71.  
  72. /****************************************************************************/
  73.  
  74. struct GlobalData
  75. {
  76.     struct Screen           *VScreen;
  77.     struct Window            *ClockWindow;
  78.     struct Gadget            *ClockGadget;
  79.     struct RastPort            FakeRP;
  80.     struct RastPort            FillRP;
  81.     struct RastPort            SaveRP;
  82.     struct BitMap            *SaveBM;
  83.     struct TextAttr         TextAttr;
  84.     struct TextFont            *TextFont;
  85.     struct VisualInfo        *VisualInfo;
  86.     struct Menu                *MainMenu;
  87.     struct FontRequester    *AslFontReq;
  88.     struct FileRequester    *AslFileReq;
  89.     struct WBStartup        *IconArgs;
  90.  
  91.     struct MsgPort            *TimerPort;
  92.     struct ClockData        CData;
  93.     struct timerequest        *TReq;
  94.     struct timeval            TVal;
  95.  
  96.     struct NotifyRequest    *NReq;
  97.     LONG                    PNSigNum;
  98.  
  99.     UBYTE    StrBuff[3][512];
  100.     UBYTE    DateStr[20];
  101.     UBYTE    TimeStr[20];
  102.  
  103.     BOOL    NewDate;
  104.     BOOL    NewTime;
  105.     BOOL    NewMin;
  106.     BOOL    NewHour;
  107.     BOOL    TmpFlags;
  108.  
  109.     BOOL    WBStart;
  110.     WORD    ErrCode;
  111.     UBYTE    SysErr[255];
  112. };
  113.  
  114. #define NUM_OF_DATEFORMATS    3    /* The real number is 4, really!! */
  115. #define MIN_ACLOCK_WIDTH    50
  116. #define MIN_ACLOCK_HEIGHT    50
  117.  
  118. enum _CLOCK_TYPES
  119. {
  120.     CT_DIGITAL,
  121.     CT_ANALOG,
  122. };
  123.  
  124. struct AnalogPts
  125. {
  126.     WORD SzX;        /* X Size    */
  127.     WORD SzY;        /* Y Size    */
  128.     WORD CtX;        /* X Center    */
  129.     WORD CtY;        /* Y Center    */
  130.     WORD Dec;        /* Size Dec */
  131.     WORD MIXScale;
  132.     WORD MIYScale;
  133.  
  134.     WORD ClockLeft;
  135.     WORD ClockTop;
  136.     WORD ClockHeight;
  137.     WORD ClockWidth;
  138.  
  139.     WORD sx;
  140.     WORD sy;
  141.     WORD mx;
  142.     WORD my;
  143.     WORD hx;
  144.     WORD hy;
  145. };
  146.  
  147. struct AnalogPens
  148. {
  149.     UBYTE MinSmallPen;
  150.     UBYTE MinLargePen;
  151.     UBYTE SecPen;
  152.     UBYTE MinPen;
  153.     UBYTE HourPen;
  154.  
  155.     UBYTE DialPen;
  156.     UBYTE DialOPen;
  157. };
  158.  
  159. struct ClockInfo
  160. {
  161.     UBYTE    *PubScreenName;
  162.     UBYTE    ClockType;
  163.     UBYTE    *FontName;
  164.     WORD    FontSize;
  165.     UBYTE    *BDRPic;
  166.     WORD     Top;            /* Window Y Pos */
  167.     WORD    Left;            /* Window X Pos */
  168.     WORD    Width;            /* User's WX    */
  169.     WORD    Height;            /* User's WY    */
  170.     UWORD   InnerTop;
  171.     UWORD    InnerLeft;
  172.     UWORD    InnerHeight;
  173.     UWORD    InnerWidth;
  174.     UWORD    TimeWidth;
  175.  
  176.     struct    AnalogPts ap;
  177.     struct  AnalogPens apn;
  178.  
  179. /* Global flags ********/
  180.  
  181. //    BOOL    ShowTime;        /* Not yet implemented */
  182.     BOOL     ShowDate;
  183.     BOOL    ShowSec;
  184.     BOOL    WinBevel;
  185.     BOOL    BDClock;
  186.     BOOL    LockPos;
  187.  
  188. /* Analog Flags ********/
  189.  
  190.     BOOL    PlaceClock;
  191.     BOOL    ShowDial;
  192.     BOOL    AutoSize;
  193.  
  194. /***********************/
  195.  
  196.     UBYTE    TextPen;
  197.     UBYTE    BGPen;
  198.     UBYTE    ShinePen;
  199.     UBYTE    ShadowPen;
  200.     UBYTE    DateSep[2];
  201.     UBYTE    TimeSep[2];
  202.     UBYTE    DateFormat;
  203.     WORD    DateSpc;
  204.     WORD    EdgeSpace;
  205.  
  206. //    UBYTE    BevelDepth;        /* Not yet implemented */
  207. };
  208.  
  209. /****************************************************************************/
  210.  
  211. VOID Error(UBYTE *header, WORD errcode);
  212. LONG EReq(struct Window *w, UBYTE *title, UBYTE *bodytext, UBYTE *gadformat, APTR arg1, ...);
  213. BOOL InitMainMenus(VOID);
  214.  
  215. WORD CreateClock(VOID);
  216. VOID RefreshClock(VOID);
  217. WORD CleanUpClock(VOID);
  218.  
  219. WORD ReadDTPic(BOOL render);
  220. ULONG ASM FReqFilter(REG (a0) struct Hook *h, REG (a2) struct FileRequester *fr, REG (a1) struct AnchorPath *ap);
  221.  
  222. WORD ParseIconArgs(struct WBStartup *wbs);
  223. WORD SaveCurrSettings(struct WBStartup *wbs);
  224.  
  225. BOOL OpenTimerDevice(VOID);
  226. VOID CloseTimerDevice(VOID);
  227. VOID GetCurrSysTime(VOID);
  228.  
  229. WORD CreatePrefsNotify(VOID);
  230. WORD DeletePrefsNotify(VOID);
  231.  
  232. /* End Of File */
  233.